Personal video recorders (PVRs), also known as digital video recorders (DVRs), such as TiVO and Replay TV devices, are popular nowadays for their enhanced capacities in recording television programming. They may offer such functions as “one-touch programming” for automatically recording every episode of a show for an entire season, “commercial advance” for automatically skipping through commercials while watching a recorded broadcast, an “on-screen guide” for looking up recorded programs to view, etc. The PVRs may also suggest programs for recording based on a user's viewing habit. These devices also enable the “pausing”, “rewinding” and “fast-forwarding” of a live television (“TV”) broadcast while it is being recorded.
PVRs typically use electronic program guides (EPGs) to facilitate the selection of programming content for recording, without having to set a timer. EPGs are also used to manage, identify, select and record programming content on program channels made available by cable television (TV) networks. A user's ability to accurately record a broadcast program with a PVR may be contingent upon the accuracy of the broadcast start and end times of the program prescribed by EPG data (hereinafter “EPG start and end times”). In instances where the actual broadcast start or end time of a program is different than the EPG start or end time, programming content is often recorded that the user did not want, or all of the programming content that the user intended to record is not actually recorded.
The actual start and end times for a given broadcast program may be different than the EPG start and end times for various reasons. For example, suppose a sports event, such as a baseball game, is scheduled to broadcast on a given evening from 7:30 PM to 10:30 PM, but because of extra innings or a rain delay, the game continues until 11:15 PM. Although the actual time of the game is from 7:30 PM to 11:15 PM, the start and end times listed and provided by the EPG will be 7:30 PM and 10:30 PM, respectively. Accordingly, if a user selects to record the baseball game using the EPG in this instance, the user would miss the last minutes of the game (i.e., from 10:30 PM to 11:15 PM). Other examples of programs ending later than expected include a Presidential Address, a special news show or an awards ceremony. Certain Presidential Addresses or special news shows may not be scheduled at all. Technical difficulties causing the content provider to broadcast a program at a time other than that which is scheduled may also cause such a variance.
In addition, when the time of one program provided on a specific channel is off schedule, subsequent programs provided by the channel may also be affected, unless the scheduled programming content is manipulated (for example, certain show or commercial segments may be skipped and therefore not broadcast). Thus, in the example above, if a user records through an EPG a particular show which was scheduled to broadcast from 11:00 PM to 11:30 PM, but it actually broadcast from 11:15 PM to 11:45 PM because of a prolonged baseball game, the user would not record the desired programming content. Instead, in this instance, the user's PVR would record the last fifteen minutes of the baseball game and only the first fifteen (out of thirty) minutes of that particular show.
PVRs have other disadvantages. For example, like a VCR, a PVR is a standalone device which requires yet another remote control to operate the device, in addition to those remote controls for a TV set, set-top box, DVD player, VCR, etc., which may already be confusing to a user. Another disadvantage is that a prior art PVR only records (a) the last X minute program material played on the channel to which the user actually tunes, where X represents a limited value, and (b) desired programs which need to be identified to or by the PVR in advance of their broadcast. Thus, any program material other than (a) or (b) is not recorded by a PVR, thereby limiting the materials that a user can review. For example, the PVR user cannot review any unrecorded program after its broadcast. Still another disadvantage is that limited by the number of tuners therein, a prior art PVR is not capable of recording programs in their entirety which have overlapping broadcast times and the number of which is greater than the number of tuners, thereby further limiting the materials that a user can review.
Video on demand (“VOD”) services, such as a subscription VOD service, address at least some of these disadvantages by storing broadcasted programs for later retrieval by customers. TV programs may be acquired and stored in real time, from multiple origination points. Typically, entire program streams for each broadcast channel are stored each day. When a customer requests a particular program that has already been broadcast and stored, the VOD service system may fetch the content of the requested program from storage based on the program times in an EPG and transmit the program to the customer. However, EPG data does not provide program start and end times accurately enough to ensure that content is cleanly defined between elements. Advertising before or after a program, which may have to be shown along with a requested program due to contractual obligations, may be clipped. Portions of programs before or after the show may also be provided, which may violate copyrights and contractual obligations with respect to those other programs. In addition, the EPG data does not take into consideration deviations between the scheduled start and end times and the actual start and end times due to unscheduled program overruns or unscheduled special programs, as discussed above. If a program has been delayed, retrieval of a stored program based on EPG data will typically not enable retrieval of all or even part of the requested program. A user may therefore expect a program that they do not receive in whole or in part. EPG data also only indicates program start and end times. It does not provide any information about the location of logical blocks or chapters within the program, such as monologs, skits, musical performances, guest appearances, sports highlights, interviews, weather reports, etc., or advertising and advertising insertion points.
With the advent of digital communications technology, many TV broadcast streams are transmitted in digital formats. For example, Digital Satellite System (DSS), Digital Broadcast Services (DBS), and Advanced Television Standards Committee (ATSC) broadcast streams are digitally formatted pursuant to the well known Moving Pictures Experts Group 2 (MPEG-2) standard. The MPEG-2 standard specifies, among others, the methodologies for video and audio data compressions which allow multiple programs, with different video and audio feeds, multiplexed in a transport stream traversing a single broadcast channel. A digital TV receiver may be used to decode an MPEG-2 encoded transport stream and extract the desired program there from. The prior art PVRs take advantage of MPEG-2 compression of video and audio data to maximize use of their limited storage capacity.
In accordance with the MPEG-2 standard, video data is compressed based on a sequence of groups of pictures (“GOPs”), in which each GOP typically begins with an intra-coded picture frame (also known as an “I-frame”), which is obtained by spatially compressing a complete picture using discrete cosine transform (DCT). As a result, if an error or a channel switch occurs, it is possible to resume correct decoding at the next I-frame.
The GOP may represent up to additional frames by providing a much smaller block of digital data that indicates how small portions of the I-frame, referred to as macroblocks, move over time. Thus, MPEG-2 achieves its compression by assuming that only small portions of an image change over time, making the representation of these additional frames extremely compact. Although GOPs have no relationship between themselves, the frames within a GOP have a specific relationship which builds off the initial I-frame.
The compressed video and audio data are carried by continuous elementary streams, respectively, which are broken into packets, resulting in packetized elementary streams (PESs). These packets are identified by headers that contain time stamps for synchronization, and are used to form MPEG-2 transport streams. For digital broadcasting, multiple programs and their associated PESs are multiplexed into a single transport stream. A transport stream has PES packets further subdivided into short fixed-size data packets, in which multiple programs encoded with different clocks can be carried. A transport stream not only comprises a multiplex of audio and video PESs, but also other data such as MPEG-2 program specific information (“PSI”) describing the transport stream. The MPEG-2 PSI includes a program associated table (“PAT”) that lists every program in the transport stream. Each entry in the PAT points to a program map table (PMT) that lists the elementary streams making up each program. Some programs are open, but some programs may be subject to conditional access (encryption) and this information is also carried in the MPEG-2 PSI.
The aforementioned fixed-size data packets in a transport stream each carry a packet identifier (“PID”) code. Packets in the same elementary streams all have the same PID, so that a decoder can select the elementary stream(s) it needs and reject the remainder. Packet-continuity counts are implemented to ensure that every packet that is needed to decode a stream is received.
Cue tones have been inserted into analog program streams by content providers to indicate insertion points for advertisements by cable systems. Cue tones are often missed, however, resulting in lost opportunities to insert advertising or clipping of inserted advertising, adversely impacting advertising revenue.
American National Standard ANSI/SCTE 35 2001 (Formerly DVS 253), Digital Program Insertion Cueing Messages for Cable (May 8, 2001) referred to herein as the DVS 253 Standard, which is incorporated by reference herein, supports the splicing of MPEG-2 digital streams for the insertion of advertising and other content. Splice information may be provided in a splice information table associated with a particular program and/or in a cue message in the program stream. The splice information table and cue messages may be sent multiple times. For example, a cue message may be sent 8, 5, 4 and 2 seconds prior to the splice event. Unauthorized parties may intercept the splice information and use it to avoid the viewing of advertising or for other commercially deleterious purposes. The splice information may be encrypted to interfere with such interception.